1. Field of the Invention
This invention relates to a method for commanding a dedicated graphics controller to display image data inside of a window on a computer display screen. More specifically, the invention relates to a method of sending commands directly from a host computer application program to a dedicated graphics controller. The host computer application prepares the image data and passes a copy command to an external dedicated graphics controller to display the image data. The external graphics controller copies the image data to video display memory so that the image appears in a computer screen window. The invention is directed to the problem of reducing the amount of time it takes to display an image in a window on a computer display.
2. Description of the Related Art
Image display systems utilizing windows on a computer screen are well known in the art. These image display systems use various combinations of graphics functions implemented in hardware and software to display image data on a computer screen. Hardware and software implementations of graphics functions are well known in the art. A well known software graphics package is the Macintosh graphics package. A well known hardware graphics implementation is the Raster OPS Display Board.
Graphics hardware is much faster than graphics software because the hardware is usually dedicated and designed to run graphics only. The software, however, runs on a host computer and shares computer processing time with all the other applications that run on the host computer. These other host applications are chores that the host computer must maintain, such as keeping track of keyboard input and reading data from disk. The graphics response time suffers as a result of this time sharing in a software implementation of a graphics function.
Vendors have turned to hardware graphics functions to speed up their image display systems. The hybrid systems use a combination of hardware and software graphics functions, and are therefore faster than the systems that use software only. These hybrid systems typically intercept requests or calls to graphics functions and then decide whether to use the hardware or the software to carry out the requested graphics function.
Developers typically have chosen to implement these hybrid systems as transparent systems. In a transparent system, an application program can not detect the presence of the graphics hardware when it calls a graphics function. The hybrid systems, of course, run faster than the software only systems and because the hybrid systems are transparent, they can run the same application code that was written for the software only systems. This means you do not have to write new software to move from a software only system to a hybrid system. Therefore, these transparent systems are attractive to some users. However, transparency can create problems as well.
In order to appear transparent to an application running on a host computer, hybrid image display systems typically trap or intercept an application program's calls to graphics functions. The hybrid system then decides whether to process the call with a hardware or a software graphics function. This creates a problem. Trapping or intercepting function calls means that there are extra steps involved in processing a function call and therefore there is more work for the host computer to perform.
These extra steps effectively create an extra layer of decision making between the requesting application and the graphics functions. Extra steps are required to trap the graphics function calls and extra steps are required to decide how to process each one of them. There are extra steps required to call the hardware and extra steps required to call the software. This means additional overhead for each and every graphics request, even those requests that do not use the hardware. The cumulative result of trapping on every graphics function call is a degradation of the system response time for the image display system. These transparent systems actually slow down the system response time to some degree while trying to speed the system up.
Transparent hybrid systems also inhibit an application program's direct control over the location of image data. Transparent systems typically run with applications that utilize a high level graphics command language like the Macintosh graphics package. These high level commands do not inform an application as to the specific location of image data in memory. Therefore, an application using these high level graphics functions cannot effectively manage the location of image data in memory. This problem typically presents itself in multi-monitor implementations.